package com.lft.sort12.other_sort;

import java.util.Arrays;
import java.util.Random;

/**
 * BogoSort排序【基本不用】
 */
public class BogoSort {
	public static void main(String[] args) {
		int[] a = {2, 6, 3, 5, 1, 4};
		System.out.println(Arrays.toString(bogoSort(a)));
	}
	
	public static int[] bogoSort(int[] a) {
		// 创建一个随机对象。
		Random random = new Random();
		// 判断数组是否是有序的。
		while (!isOrder(a)) {
			//
			for (int i = 0; i < a.length; i++) {
				int randomPosition = random.nextInt(a.length);
				int temp = a[i];
				a[i] = a[randomPosition];
				a[randomPosition] = temp;
			}
		}
		return a;
	}
	
	/**
	 * 判断是否排好序。
	 * @param a 数组。
	 * @return 排好返回true, 未排好返回false
	 */
	private static boolean isOrder(int[] a) {
		for (int i = 0; i < a.length - 1; i++) {
			if (a[i] > a[i + 1]) {
				return false;
			}
		}
		return true;
	}
}
